package com.learning_paicoding.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.time.LocalDateTime;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.experimental.Accessors;

/**
 * <p>
 * 用户个人信息表
 * </p>
 *
 * @author hph
 * @since 2025-07-06
 */
@Data
@Accessors(chain = true)
@TableName("user_info")
@Schema(name = "UserInfo", description = "用户个人信息表")
public class UserInfo implements Serializable {

    private static final long serialVersionUID = 1L;

    @Schema(description = "主键ID")
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    @Schema(description = "用户id")
    @TableField("user_id")
    private Long userId;

    @Schema(description = "用户名")
    @TableField("user_name")
    private String userName;

    @Schema(description = "用户图像")
    @TableField("photo")
    private String photo;

    @Schema(description = "职位")
    @TableField("position")
    private String position;

    @Schema(description = "公司")
    @TableField("company")
    private String company;

    @Schema(description = "个人简介")
    @TableField("profile")
    private String profile;

    @Schema(description = "0 普通用户 1 超管")
    @TableField("user_role")
    private Integer userRole;

    @Schema(description = "扩展字段")
    @TableField("extend")
    private String extend;

    @Schema(description = "用户的ip信息")
    @TableField("ip")
    private String ip;

    @Schema(description = "是否删除")
    @TableField("deleted")
    private Byte deleted;

    @Schema(description = "创建时间")
    @TableField("create_time")
    private LocalDateTime createTime;

    @Schema(description = "最后更新时间")
    @TableField("update_time")
    private LocalDateTime updateTime;

    @Schema(description = "用户邮箱")
    @TableField("email")
    private String email;

    @Schema(description = "聚合收款码")
    @TableField("pay_code")
    private String payCode;



}
